Remotos: push, pull y fetch
Teórico — Conecta tu repositorio local con el mundo exterior: sincroniza código con GitHub, GitLab o cualquier servidor remoto.
01 ¿Qué es un repositorio remoto?
Un remoto (remote) es una copia de tu repositorio que vive en otro lugar — normalmente en un servidor como GitHub, GitLab o Bitbucket. Es lo que permite que varias personas trabajen en el mismo proyecto.
Local
Tu copia del repositorio, en tu computadora. Aquí haces commits, creas ramas, y trabajas.
Remoto
La copia en el servidor. Sirve como respaldo, punto central para el equipo, y para compartir código.
02 origin — El remoto principal
Cuando clonas un repositorio con git clone, Git automáticamente
configura un remoto llamado origin que apunta al URL original.
Es una convención — puedes tener varios remotos con diferentes nombres.
Administrar remotos
# Ver los remotos configurados
git remote -v
# Agregar un remoto manualmente
git remote add origin https://github.com/tu-usuario/tu-repo.git
# Cambiar el URL de un remoto
git remote set-url origin https://github.com/tu-usuario/nuevo-repo.git
# Eliminar un remoto
git remote remove origin
03 git push — Subir cambios
git push envía tus commits locales al repositorio remoto.
Los demás miembros del equipo podrán ver tus cambios después del push.
Sintaxis de git push
# Push básico (la rama actual al remoto origin)
git push origin main
# Después del primer push, puedes hacer solo:
git push
# Push de una rama feature
git push origin feature/login
# Primer push de una rama nueva (configura tracking)
git push -u origin feature/login
-u (o --set-upstream) vincula tu rama local
con la rama remota. Después de usarlo una vez, solo necesitas escribir
git push sin especificar el remoto y la rama.
04 git pull — Bajar y fusionar
git pull descarga los cambios del remoto y los fusiona
automáticamente con tu rama local. Es la forma más común de actualizar tu código.
Sintaxis de git pull
# Pull básico (descarga + merge)
git pull origin main
# Si ya tienes tracking configurado:
git pull
# Pull con rebase (reorganiza commits en lugar de merge)
git pull --rebase
git pull puede causar conflictos
si tú y alguien más modificaron las mismas líneas. Se resuelven igual que
los conflictos de merge: editar, git add, y git commit.
05 git fetch — Descargar sin fusionar
git fetch descarga los cambios del remoto pero no los
fusiona. Te permite ver qué hay de nuevo antes de decidir si integrarlos.
fetch vs pull
# Descargar sin fusionar
git fetch origin
# Ver qué cambió en el remoto
git log HEAD..origin/main --oneline
# Si te convence, fusiona manualmente
git merge origin/main
git fetch
Descarga cambios. No modifica tu código local. Es seguro — puedes revisar antes de fusionar.
git pull
Descarga + merge automático. Modifica tu código. Más rápido pero puede causar conflictos inesperados.
06 Flujo completo de trabajo con remotos
Ciclo diario de trabajo
# 1. Antes de empezar a trabajar, actualizar
git pull origin main
# 2. Crear una rama para tu tarea
git checkout -b feature/nueva-funcionalidad
# 3. Trabajar: editar, add, commit (varias veces)
git add .
git commit -m "Implementa nueva funcionalidad"
# 4. Subir tu rama al remoto
git push -u origin feature/nueva-funcionalidad
# 5. Crear un Pull Request en GitHub (web)
# 6. Después del merge en GitHub, actualizar local
git checkout main
git pull origin main
Cuestionario de evaluación
Demuestra que entiendes cómo funcionan los remotos en Git.